00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _optimization_ifc_h_
00019 #define _optimization_ifc_h_
00020
00021 #include <vector>
00022 #include <boost/serialization/base_object.hpp>
00023 #include <boost/serialization/split_member.hpp>
00024
00025 #include "boost/smart_ptr/shared_ptr.hpp"
00026 #include "boost/smart_ptr/weak_ptr.hpp"
00027 #include "gridpack/utilities/complex.hpp"
00028 #include "gridpack/component/data_collection.hpp"
00029 #include "gridpack/expression/variable.hpp"
00030 #include "gridpack/expression/expression.hpp"
00031
00032 #include <boost/serialization/export.hpp>
00033
00034 namespace gridpack{
00035 namespace component{
00036
00037
00038
00039
00040
00041
00042
00043 class OptimizationInterface {
00044 public:
00045
00046
00047
00048
00049 OptimizationInterface(void);
00050
00051
00052
00053
00054 virtual ~OptimizationInterface(void);
00055
00056
00057
00058
00059
00060 virtual std::vector<boost::shared_ptr<gridpack::optimization::Variable> >
00061 getVariables();
00062
00063
00064
00065
00066
00067
00068
00069 virtual std::vector<boost::shared_ptr<gridpack::optimization::Variable> >
00070 getAuxVariables();
00071
00072
00073
00074
00075
00076
00077
00078
00079 virtual boost::shared_ptr<gridpack::optimization::Expression>
00080 getGlobalConstraint(const char* tag);
00081
00082
00083
00084
00085
00086 virtual std::vector<boost::shared_ptr<gridpack::optimization::Constraint> >
00087 getLocalConstraints();
00088
00089
00090
00091
00092
00093
00094 virtual boost::shared_ptr<gridpack::optimization::Expression>
00095 getObjectiveFunction();
00096 private:
00097
00098 friend class boost::serialization::access;
00099
00100 template<class Archive>
00101 void serialize(Archive & ar, const unsigned int version)
00102 {
00103 ar;
00104 }
00105
00106
00107 };
00108 }
00109 }
00110
00111 #endif